1. Technical Field
The subject matter herein relates to storage systems and, more specifically, to simulating a persistent random-access, byte-addressable storage device on a persistent random-access, block-addressable storage device of a storage system.
2. Background Information
A storage system may include a file system configured to provide storage service to one or more clients relating to storage and retrieval of information on persistent random-access, block-addressable storage devices, such as disks. To improve the reliability and stability of such storage service, the storage system may employ a persistent random-access, byte-addressable storage device, such as a non-volatile random access memory (NVRAM). The NVRAM typically includes a back-up battery or other built-in, last-state retention capability (e.g., non-volatile semiconductor memory) that is capable of maintaining information in light of a failure to the storage system.
In addition, the performance of the storage service provided by the storage system may be improved using the NVRAM. Widely accepted file system standards, such as the Network File System (NFS), specify that a storage system should not reply to a client with respect to completion of a modifying data access request, e.g., a write operation and associated data, until the results of the request are written to persistent storage. The storage system may utilize the NVRAM to record or log the modifying request as processed by the file system. By logging the modifying request to NVRAM, a reply can be returned to the client with respect to completion of the request before the results of the request have been written to disk.
For a storage system that may not employ a NVRAM, a disk (or other similar secondary storage) may be used as persistent storage for simulating the NVRAM. However, the performance of such a storage system may be impacted as the logging of modifying requests to NVRAM is faster than writing of the results of the request to disk. Moreover, users of the NVRAM, e.g., a file system, typically expect certain properties from the NVRAM including preservation of an order of changes associated with the modifying requests to the NVRAM.